<template>
    <div class="app-container">
        <div style="text-align: center;margin: 20px 0;font-size: 24px;color: #666;">
            <b>样衣报表（按照店铺维度）</b>
        </div>
        <el-row :gutter="20">
            <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
                label-width="68px">
                <!-- <el-form-item label="店铺编号" prop="shopId">
        <el-input v-model="queryParams.shopId" placeholder="请输入店铺编号" clearable @keyup.enter.native="handleQuery" />
      </el-form-item> -->

                <el-col :span="16">
                    <el-form-item label="" prop="shopName">
                        <el-input v-model="queryParams.shopName" placeholder="请输入店铺名称" clearable
                            @keyup.enter.native="handleQuery" />
                    </el-form-item>
                </el-col>
            </el-form>
            <!-- <el-col :span="8"> -->
            <!-- <div style="margin: 20px 0;"> -->
            <Year :curData="curData" ref="resetCommon" @child="child"></Year>


            <el-row :gutter="10" class="mb8">
                <div style="text-align: center;margin: 20px 0;font-size: 24px;color: #666;">
                    <b>总览（按照店铺维度）￥</b>
                </div>
                <!-- <el-col :span="1.5">
              <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
                v-hasPermi="['system:user:add']">新增</el-button>
            </el-col>
            <el-col :span="1.5">
              <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
                v-hasPermi="['system:user:edit']">修改</el-button>
            </el-col>
            <el-col :span="1.5">
              <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
                v-hasPermi="['system:user:remove']">删除</el-button>
            </el-col>
            <el-col :span="1.5">
              <el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport"
                v-hasPermi="['system:user:import']">导入</el-button>
            </el-col>
            <el-col :span="1.5">
              <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
                v-hasPermi="['system:user:export']">导出</el-button>
            </el-col> -->
                <el-col :span="1.5">
                    <!-- <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport">导出</el-button> -->
                </el-col>

                <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> -->

            </el-row>
            <el-table v-loading="loading" :data="applyList" @selection-change="handleSelectionChange" id="tables"
                :summary-method="addTotal" :show-summary="true" v-show="this.params.queryType == 1">
                <el-table-column type="selection" width="50" align="center" />
                <el-table-column label="发货日期" align="center" prop="sampleDay" />
                <!-- <el-table-column label="员工" align="center" prop="userName" /> -->
                <el-table-column label="发货量" align="center" prop="sampleNum" />
                <!-- <el-table-column label="发货比例" align="center" prop="sendRatio" /> -->
                <el-table-column label="退货量" align="center" prop="returnedNum" />
                <el-table-column label="退货比例" align="center" prop="returnedRatio" :formatter="battery" />
                <el-table-column label="归还" align="center" prop="returnNum" />
                <el-table-column label="未归还" align="center" prop="noReturnNum" />
                <el-table-column label="归还比例" align="center" prop="returnRatio" :formatter="returnRatio" />
            </el-table>

            <el-table v-loading="loading" :data="applydwdList" @selection-change="handleSelectionChange" id="tables"
                :summary-method="addTotal" :show-summary="true" v-show="this.params.queryType == 3">
                <el-table-column type="selection" width="50" align="center" />
                <el-table-column label="发货月" align="center" prop="dateMonth" />
                <!-- <el-table-column label="员工" align="center" prop="userName" /> -->
                <el-table-column label="发货量" align="center" prop="sampleNum" />
                <!-- <el-table-column label="发货比例" align="center" prop="sendRatio" /> -->
                <el-table-column label="退货量" align="center" prop="returnedNum" />
                <el-table-column label="退货比例" align="center" prop="returnedRatio" :formatter="battery" />
                <el-table-column label="归还" align="center" prop="returnNum" />
                <el-table-column label="未归还" align="center" prop="noReturnNum" />
                <el-table-column label="归还比例" align="center" prop="returnRatio" :formatter="returnRatio" />

            </el-table>

            <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
                :limit.sync="queryParams.pageSize" @pagination="getList" />
            <!-- </el-col> -->
        </el-row>

        <!-- 添加或修改用户配置对话框 -->
        <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
            <el-form ref="form" :model="form" :rules="rules" label-width="80px">
                <el-row>
                    <el-col :span="12">
                        <el-form-item label="用户昵称" prop="nickName">
                            <el-input v-model="form.nickName" placeholder="请输入用户昵称" maxlength="30" />
                        </el-form-item>
                    </el-col>
                    <el-col :span="12">
                        <el-form-item label="归属部门" prop="deptId">
                            <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true"
                                placeholder="请选择归属部门" />
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row>
                    <el-col :span="12">
                        <el-form-item label="手机号码" prop="phonenumber">
                            <el-input v-model="form.phonenumber" placeholder="请输入手机号码" maxlength="11" />
                        </el-form-item>
                    </el-col>
                    <el-col :span="12">
                        <el-form-item label="邮箱" prop="email">
                            <el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" />
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row>
                    <el-col :span="12">
                        <el-form-item v-if="form.userId == undefined" label="用户名称" prop="userName">
                            <el-input v-model="form.userName" placeholder="请输入用户名称" maxlength="30" />
                        </el-form-item>
                    </el-col>
                    <el-col :span="12">
                        <el-form-item v-if="form.userId == undefined" label="用户密码" prop="password">
                            <el-input v-model="form.password" placeholder="请输入用户密码" type="password" maxlength="20"
                                show-password />
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row>
                    <el-col :span="12">
                        <el-form-item label="用户性别">
                            <el-select v-model="form.sex" placeholder="请选择性别">
                                <el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
                                    :value="dict.value"></el-option>
                            </el-select>
                        </el-form-item>
                    </el-col>
                    <el-col :span="12">
                        <el-form-item label="状态">
                            <el-radio-group v-model="form.status">
                                <el-radio v-for="dict in dict.type.sys_normal_disable" :key="dict.value"
                                    :label="dict.value">{{ dict.label
                                    }}</el-radio>
                            </el-radio-group>
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row>
                    <el-col :span="12">
                        <el-form-item label="岗位">
                            <el-select v-model="form.postIds" multiple placeholder="请选择岗位">
                                <el-option v-for="item in postOptions" :key="item.postId" :label="item.postName"
                                    :value="item.postId" :disabled="item.status == 1"></el-option>
                            </el-select>
                        </el-form-item>
                    </el-col>
                    <el-col :span="12">
                        <el-form-item label="角色">
                            <el-select v-model="form.roleIds" multiple placeholder="请选择角色">
                                <el-option v-for="item in roleOptions" :key="item.roleId" :label="item.roleName"
                                    :value="item.roleId" :disabled="item.status == 1"></el-option>
                            </el-select>
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row>
                    <el-col :span="24">
                        <el-form-item label="备注">
                            <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
                        </el-form-item>
                    </el-col>
                </el-row>
            </el-form>
            <div slot="footer" class="dialog-footer">
                <el-button type="primary" @click="submitForm">确 定</el-button>
                <el-button @click="cancel">取 消</el-button>
            </div>
        </el-dialog>

        <!-- 用户导入对话框 -->
        <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
            <el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
                :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
                :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
                <i class="el-icon-upload"></i>
                <div class="el-upload__text">将文件拖到此处，或<em>点击上传</em></div>
                <div class="el-upload__tip text-center" slot="tip">
                    <div class="el-upload__tip" slot="tip">
                        <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据
                    </div>
                    <span>仅允许导入xls、xlsx格式文件。</span>
                    <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;"
                        @click="importTemplate">下载模板</el-link>
                </div>
            </el-upload>
            <div slot="footer" class="dialog-footer">
                <el-button type="primary" @click="submitFileForm">确 定</el-button>
                <el-button @click="upload.open = false">取 消</el-button>
            </div>
        </el-dialog>
    </div>
</template>
  
<script>
import Year from "./day.vue";
import { listApplydwd, getApplydwd, delApplydwd, addApplydwd, updateApplydwd, selectdeptUserSampleNum, selectMonthSampleNum, selectDaySampleNum } from "@/api/sample/applydwd";
import { listUser, getUser, delUser, addUser, updateUser, resetUserPwd, changeUserStatus, deptTreeSelect } from "@/api/system/user";
import { getToken } from "@/utils/auth";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";

export default {
    name: "Applydwd",
    dicts: ['sys_normal_disable', 'sys_user_sex'],
    components: { Treeselect, Year },
    data() {
        return {
            curData: {
                type: 1,
                dateRange: {
                    beginTime: "",
                    endTime: "",
                },
            },
            params: {
                queryType: 1,
                startDate: "",
                endDate: "",
            },
            applyList: [],
            // 样衣寄样细节数据层表格数据
            applydwdList: [],
            // 遮罩层
            loading: true,
            // 选中数组
            ids: [],
            // 非单个禁用
            single: true,
            // 非多个禁用
            multiple: true,
            // 显示搜索条件
            showSearch: true,
            // 总条数
            total: 0,
            // 用户表格数据
            userList: null,
            // 弹出层标题
            title: "",
            // 部门树选项
            deptOptions: undefined,
            // 是否显示弹出层
            open: false,
            // 部门名称
            deptName: undefined,
            // 默认密码
            initPassword: undefined,
            // 日期范围
            dateRange: [],
            // 岗位选项
            postOptions: [],
            // 角色选项
            roleOptions: [],
            // 表单参数
            form: {},
            defaultProps: {
                children: "children",
                label: "label"
            },
            // 用户导入参数
            upload: {
                // 是否显示弹出层（用户导入）
                open: false,
                // 弹出层标题（用户导入）
                title: "",
                // 是否禁用上传
                isUploading: false,
                // 是否更新已经存在的用户数据
                updateSupport: 0,
                // 设置上传的请求头部
                headers: { Authorization: "Bearer " + getToken() },
                // 上传的地址
                url: process.env.VUE_APP_BASE_API + "/system/user/importData"
            },
            // 查询参数
            queryParams: {
                pageNum: 1,
                pageSize: 10,
                shopId: null,
                shopName: null,
                shopStatus: null,
                outerPayId: null,
                soId: null,
                iId: null,
                skuId: null,
                outerOiId: null,
                qty: null,
                amount: null,
                referrerName: null,
                referrerId: null,
                price: null,
                sendDate: null,
                sendDay: null,
                payDate: null,
                payDay: null,
                chosenChannel: null,
                commission: null,
            },
            // 列信息
            columns: [
                { key: 0, label: `用户编号`, visible: true },
                { key: 1, label: `用户名称`, visible: true },
                { key: 2, label: `用户昵称`, visible: true },
                { key: 3, label: `部门`, visible: true },
                { key: 4, label: `手机号码`, visible: true },
                { key: 5, label: `状态`, visible: true },
                { key: 6, label: `创建时间`, visible: true }
            ],
            // 月份
            monthList: [
                { label: "1月", value: 1 },
                { label: "2月", value: 2 },
                { label: "3月", value: 3 },
                { label: "4月", value: 4 },
                { label: "5月", value: 5 },
                { label: "6月", value: 6 },
                { label: "7月", value: 7 },
                { label: "8月", value: 8 },
                { label: "9月", value: 9 },
                { label: "10月", value: 10 },
                { label: "11月", value: 11 },
                { label: "12月", value: 12 }
            ],
            // 表单校验
            rules: {
                userName: [
                    { required: true, message: "用户名称不能为空", trigger: "blur" },
                    { min: 2, max: 20, message: '用户名称长度必须介于 2 和 20 之间', trigger: 'blur' }
                ],
                nickName: [
                    { required: true, message: "用户昵称不能为空", trigger: "blur" }
                ],
                password: [
                    { required: true, message: "用户密码不能为空", trigger: "blur" },
                    { min: 5, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur' }
                ],
                email: [
                    {
                        type: "email",
                        message: "请输入正确的邮箱地址",
                        trigger: ["blur", "change"]
                    }
                ],
                phonenumber: [
                    {
                        pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
                        message: "请输入正确的手机号码",
                        trigger: "blur"
                    }
                ]
            }
        };
    },
    watch: {
        // 根据名称筛选部门树
        deptName(val) {
            this.$refs.tree.filter(val);
        }
    },
    created() {
        // this.getlistApplydwd()
        this.getList();
        //   this.getDeptTree();
        //   this.getConfigKey("sys.user.initPassword").then(response => {
        //     this.initPassword = response.msg;
        //   });
    },
    methods: {
        child(objArgu, weekTime) {
            this.objArgu = objArgu;
            this.params.queryType = objArgu.cType;
            this.params.startDate = objArgu.beginTime;
            this.params.endDate = objArgu.endTime;
            this.weekTime = weekTime;
            console.log(JSON.stringify(this.params));
            if (this.params.queryType == 1) {
                const obj = { sampleDayStart: this.params.startDate, sampleDayEnd: this.params.endDate }
                selectDaySampleNum(obj).then(response => {
                    this.applydwdList = response;
                    console.log(JSON.stringify(response));
                    this.total = response.length
                    this.loading = false;
                });
                // this.$modal.msgWarning('请选择 按年 方式')
                // return
            }
            if (this.params.queryType == 3) {
                // console.log(1);
                const obj = { dateYearStart: this.params.startDate.slice(0, 4), dateYearEnd: this.params.endDate.slice(0, 4), dateMonthStart: this.params.startDate.slice(5, 7), dateMonthEnd: this.params.endDate.slice(5, 7) }
                console.log(JSON.stringify(obj));
                selectMonthSampleNum(obj).then(response => {
                    this.applydwdList = response;
                    console.log(JSON.stringify(response));
                    this.total = response.length
                    this.loading = false;
                });

            }
        },
        //比重格式-百分号
        battery(row) {
            // return row.shareRate * 100 + "%";
            //  return parseInt(row.shareRate * 100) + '%'
            return Number(row.returnedRatio * 100).toFixed(2) + "%";
        },
        //比重格式-百分号
        returnRatio(row) {
            // return row.shareRate * 100 + "%";
            //  return parseInt(row.shareRate * 100) + '%'
            return Number(row.returnRatio * 100).toFixed(2) + "%";
        },
        //合计行
        addTotal(param) {
            const { columns, data } = param;
            const sums = [];
            columns.forEach((column, index) => {
                if (index === 0) {
                    sums[index] = '总计';
                    return;
                }
                if (index === 1) {
                    sums[index] = 'N/A';
                    return;
                }
                // if (index === 3) {
                //   sums[index] = 'N/A';
                //   return;
                // }
                const values = data.map(item => Number(item[column.property]));

                if (!values.every(value => isNaN(value))) {
                    sums[index] = values.reduce((prev, curr) => {
                        const value = Number(curr);
                        if (!isNaN(value)) {
                            return prev + curr;
                        } else {
                            return prev;
                        }
                    }, 0);
                    sums[index] += '';
                } else {
                    sums[index] = 'N/A';
                }

                if (index === 4) {
                    var point = sums[3] / sums[2]
                    var str = Number(point * 100).toFixed(2);
                    str += '%';
                    sums[index] = str
                }
                if (index === 7) {
                    var sum = Number(sums[5]) + Number(sums[6])
                    console.log(sum);
                    var point = sums[5] / sum
                    var str = Number(point * 100).toFixed(2);
                    str += '%';
                    sums[index] = str
                }

            });

            console.log(JSON.stringify(sums));
            return sums;
            // }





            // const { columns, data } = param;

            // const sums = [];
            // columns.forEach((column, index) => {
            //   if (index === 0) {
            //     console.log(column)
            //     column.colSpan = 7  //行占用格数
            //     column.rowSpan = 1;  //列占用格数
            //     sums[index] = '权重得分合计';
            //   }
            //   if (index !== 0 && index !== 1) {
            //     column.rowSpan = 0;
            //     column.colSpan = 0;
            //     // column.style = {
            //     //   "display":"none"  //这里加了但是没有作用效果
            //     // }
            //     console.log(column)
            //     return;
            //   }
            //   const values = data.map(item => Number(item[column.property]));
            //   console.log(JSON.stringify(values))
            //   if (index === 1) {
            //     if (!values.every(value => isNaN(value))) {
            //       sums[index] = values.reduce((prev, curr) => {
            //         const value = Number(curr);
            //         if (!isNaN(value)) {
            //           return prev + curr;
            //         } else {
            //           return prev;
            //         }
            //       }, 0);
            //     } else {
            //       // sums[index] = 'N/A';
            //     }
            //   }
            // });

            // //在合计行方法中直接去修改了单元格样式
            // //合并单元格
            // this.$nextTick(() => {
            //   const tds = document.querySelectorAll('#tables .el-table__footer tr>td');
            //   console.log(tds)
            //   tds.forEach(function (val, index) {
            //     if (tds[0].innerText === '权重得分合计') {
            //       if (index !== 0 && index !== 1) {
            //         val.style.display = 'none';
            //       } else {
            //         val.style.textAlign = 'center';
            //       }
            //       // val.style.display = 'none';
            //       // val.style.fontSize = '16px';
            //       // val.style.borderColor = '#aaaaaa';
            //       // val.style.color = '#fff';
            //     }
            //   })
            // }, 1000)
            // return sums;
        },
        /** 查询样衣寄样细节数据层列表 */
        getList() {
            this.loading = true;
            // selectMonthSampleNum(this.queryParams).then(response => {
            //     this.applydwdList = response;
            //     console.log(JSON.stringify(response));
            //     this.total = response.length
            //     this.loading = false;
            // });
            selectDaySampleNum(this.queryParams).then(response => {
                this.applyList = response;
                console.log(JSON.stringify(response));
                this.total = response.length
                this.loading = false;
            });
        },


        /** 查询用户列表 */
        // getList() {
        //   this.loading = true;
        //   listUser(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
        //     this.userList = response.rows;
        //     this.total = response.total;
        //     this.loading = false;
        //   }
        //   );
        // },
        /** 查询部门下拉树结构 */
        getDeptTree() {
            deptTreeSelect().then(response => {
                this.deptOptions = response.data;
                console.log(JSON.stringify(response.data));
            });
        },
        // 筛选节点
        filterNode(value, data) {
            if (!value) return true;
            return data.label.indexOf(value) !== -1;
        },
        // 节点单击事件
        handleNodeClick(data) {
            // this.queryParams.deptId = data.id;
            this.queryParams.applyDeptId = data.id;
            this.handleQuery();
        },
        // 用户状态修改
        handleStatusChange(row) {
            let text = row.status === "0" ? "启用" : "停用";
            this.$modal.confirm('确认要"' + text + '""' + row.userName + '"用户吗？').then(function () {
                return changeUserStatus(row.userId, row.status);
            }).then(() => {
                this.$modal.msgSuccess(text + "成功");
            }).catch(function () {
                row.status = row.status === "0" ? "1" : "0";
            });
        },
        // 取消按钮
        cancel() {
            this.open = false;
            this.reset();
        },
        // 表单重置
        reset() {
            this.form = {
                userId: undefined,
                deptId: undefined,
                userName: undefined,
                nickName: undefined,
                password: undefined,
                phonenumber: undefined,
                email: undefined,
                sex: undefined,
                status: "0",
                remark: undefined,
                postIds: [],
                roleIds: []
            };
            this.resetForm("form");
        },
        /** 搜索按钮操作 */
        handleQuery() {
            this.queryParams.pageNum = 1;
            this.getList();
        },
        /** 重置按钮操作 */
        resetQuery() {
            this.dateRange = [];
            this.resetForm("queryForm");
            this.queryParams.applyDeptId = undefined;
            this.queryParams.deptId = undefined;
            this.$refs.tree.setCurrentKey(null);
            this.handleQuery();
        },
        // 多选框选中数据
        handleSelectionChange(selection) {
            this.ids = selection.map(item => item.userId);
            this.single = selection.length != 1;
            this.multiple = !selection.length;
        },
        // 更多操作触发
        handleCommand(command, row) {
            switch (command) {
                case "handleResetPwd":
                    this.handleResetPwd(row);
                    break;
                case "handleAuthRole":
                    this.handleAuthRole(row);
                    break;
                default:
                    break;
            }
        },
        /** 新增按钮操作 */
        handleAdd() {
            this.reset();
            getUser().then(response => {
                this.postOptions = response.posts;
                this.roleOptions = response.roles;
                this.open = true;
                this.title = "添加用户";
                this.form.password = this.initPassword;
            });
        },
        /** 修改按钮操作 */
        handleUpdate(row) {
            this.reset();
            const userId = row.userId || this.ids;
            getUser(userId).then(response => {
                this.form = response.data;
                this.postOptions = response.posts;
                this.roleOptions = response.roles;
                console.log(JSON.stringify(this.postOptions));
                console.log(JSON.stringify(this.roleOptions));
                this.$set(this.form, "postIds", response.postIds);
                this.$set(this.form, "roleIds", response.roleIds);
                this.open = true;
                this.title = "修改用户";
                this.form.password = "";
            });
        },
        /** 重置密码按钮操作 */
        handleResetPwd(row) {
            this.$prompt('请输入"' + row.userName + '"的新密码', "提示", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                closeOnClickModal: false,
                inputPattern: /^.{5,20}$/,
                inputErrorMessage: "用户密码长度必须介于 5 和 20 之间"
            }).then(({ value }) => {
                resetUserPwd(row.userId, value).then(response => {
                    this.$modal.msgSuccess("修改成功，新密码是：" + value);
                });
            }).catch(() => { });
        },
        /** 分配角色操作 */
        handleAuthRole: function (row) {
            const userId = row.userId;
            this.$router.push("/system/user-auth/role/" + userId);
        },
        /** 提交按钮 */
        submitForm: function () {
            console.log(JSON.stringify(this.form));
            this.$refs["form"].validate(valid => {
                if (valid) {
                    if (this.form.userId != undefined) {
                        updateUser(this.form).then(response => {
                            this.$modal.msgSuccess("修改成功");
                            this.open = false;
                            this.getList();
                        });
                    } else {
                        addUser(this.form).then(response => {
                            this.$modal.msgSuccess("新增成功");
                            this.open = false;
                            this.getList();
                        });
                    }
                }
            });
        },
        /** 删除按钮操作 */
        handleDelete(row) {
            const userIds = row.userId || this.ids;
            this.$modal.confirm('是否确认删除用户编号为"' + userIds + '"的数据项？').then(function () {
                return delUser(userIds);
            }).then(() => {
                this.getList();
                this.$modal.msgSuccess("删除成功");
            }).catch(() => { });
        },
        /** 导出按钮操作 */
        handleExport() {

            this.download('system/user/export', {
                ...this.queryParams
            }, `user_${new Date().getTime()}.xlsx`)
        },
        /** 导入按钮操作 */
        handleImport() {
            this.upload.title = "用户导入";
            this.upload.open = true;
        },
        /** 下载模板操作 */
        importTemplate() {
            this.download('system/user/importTemplate', {
            }, `user_template_${new Date().getTime()}.xlsx`)
        },
        // 文件上传中处理
        handleFileUploadProgress(event, file, fileList) {
            this.upload.isUploading = true;
        },
        // 文件上传成功处理
        handleFileSuccess(response, file, fileList) {
            this.upload.open = false;
            this.upload.isUploading = false;
            this.$refs.upload.clearFiles();
            this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true });
            this.getList();
        },
        // 提交上传文件
        submitFileForm() {
            this.$refs.upload.submit();
        }
    }
};
</script>